#pragma once 
 
#include <Terrain/OgreTerrain.h>
#include <Terrain/OgreTerrainGroup.h>
 
class Terrain
{
private:
	Ogre::SceneManager* mSceneMgr;

    Ogre::TerrainGlobalOptions* mTerrainGlobals;
    Ogre::TerrainGroup* mTerrainGroup;
    bool mTerrainsImported;
 
    void defineTerrain(long x, long y);
    void initBlendMaps(Ogre::Terrain* terrain);
    void configureTerrainDefaults(Ogre::Light* light);
public:
    Terrain(Ogre::SceneManager* mSceneMgr);
    virtual ~Terrain(void);
	virtual void prepareTerrain(void);
 
protected: 
    virtual void destroyScene(void);
    virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);

public:
	Ogre::Terrain * getTerrain();
};